package org.altervista.cp.thinjdbc.wrappers;

import java.sql.RowIdLifetime;
import java.sql.SQLException;

public abstract class DatabaseMetaData4 extends DatabaseMetaData {

	public ResultSet4 getAttributes(String catalog,
			String schemaPattern, String typeNamePattern,
			String attributeNamePattern) {
		return (ResultSet4) super.getAttributes(catalog, schemaPattern,
				typeNamePattern, attributeNamePattern);
	}

	public ResultSet4 getBestRowIdentifier(String catalog,
			String schema, String table, int scope, boolean nullable) {
		return (ResultSet4) super.getBestRowIdentifier(catalog, schema,
				table, scope, nullable);
	}

	public ResultSet4 getCatalogs() {
		return (ResultSet4) super.getCatalogs();
	}

	public ResultSet4 getClientInfoProperties() {
		try {
			return (ResultSet4) ResultSet.newInstance(unwrap()
					.getClientInfoProperties());
		} catch (SQLException e) {
			throw new SQLRuntimeException(e);
		}
	}

	public ResultSet4 getColumnPrivileges(String catalog, String schema,
			String table, String columnNamePattern) {
		return (ResultSet4) super.getColumnPrivileges(catalog, schema,
				table, columnNamePattern);
	}

	public ResultSet4 getColumns(String catalog, String schemaPattern,
			String tableNamePattern, String columnNamePattern) {
		return (ResultSet4) super.getColumns(catalog, schemaPattern,
				tableNamePattern, columnNamePattern);
	}

	public Connection4 getConnection() {
		return (Connection4) super.getConnection();
	}

	public ResultSet4 getCrossReference(String parentCatalog,
			String parentSchema, String parentTable, String foreignCatalog,
			String foreignSchema, String foreignTable) {
		return (ResultSet4) super.getCrossReference(parentCatalog,
				parentSchema, parentTable, foreignCatalog, foreignSchema,
				foreignTable);
	}

	public ResultSet4 getExportedKeys(String catalog, String schema,
			String table) {
		return (ResultSet4) super
				.getExportedKeys(catalog, schema, table);
	}

	public ResultSet4 getFunctionColumns(String catalog,
			String schemaPattern, String functionNamePattern,
			String columnNamePattern) {
		try {
			return (ResultSet4) ResultSet.newInstance(unwrap()
					.getFunctionColumns(catalog, schemaPattern,
							functionNamePattern, columnNamePattern));
		} catch (SQLException e) {
			throw new SQLRuntimeException(e);
		}
	}

	public ResultSet4 getFunctions(String catalog, String schemaPattern,
			String functionNamePattern) {
		try {
			return (ResultSet4) ResultSet.newInstance(unwrap()
					.getFunctions(catalog, schemaPattern, functionNamePattern));
		} catch (SQLException e) {
			throw new SQLRuntimeException(e);
		}
	}

	public ResultSet4 getImportedKeys(String catalog, String schema,
			String table) {
		return (ResultSet4) super
				.getImportedKeys(catalog, schema, table);
	}

	public ResultSet4 getIndexInfo(String catalog, String schema,
			String table, boolean unique, boolean approximate) {
		return (ResultSet4) super.getIndexInfo(catalog, schema, table,
				unique, approximate);
	}

	public ResultSet4 getPrimaryKeys(String catalog, String schema,
			String table) {
		return (ResultSet4) super.getPrimaryKeys(catalog, schema, table);
	}

	public ResultSet4 getProcedureColumns(String catalog,
			String schemaPattern, String procedureNamePattern,
			String columnNamePattern) {
		return (ResultSet4) super.getProcedureColumns(catalog,
				schemaPattern, procedureNamePattern, columnNamePattern);
	}

	public ResultSet4 getProcedures(String catalog,
			String schemaPattern, String procedureNamePattern) {
		return (ResultSet4) super.getProcedures(catalog, schemaPattern,
				procedureNamePattern);
	}

	public ResultSet4 getSchemas() {
		return (ResultSet4) super.getSchemas();
	}

	public ResultSet4 getSchemas(String catalog, String schemaPattern) {
		try {
			return (ResultSet4) ResultSet.newInstance(unwrap()
					.getSchemas(catalog, schemaPattern));
		} catch (SQLException e) {
			throw new SQLRuntimeException(e);
		}
	}

	public ResultSet4 getSuperTables(String catalog,
			String schemaPattern, String tableNamePattern) {
		return (ResultSet4) super.getSuperTables(catalog, schemaPattern,
				tableNamePattern);
	}

	public ResultSet4 getSuperTypes(String catalog,
			String schemaPattern, String typeNamePattern) {
		return (ResultSet4) super.getSuperTypes(catalog, schemaPattern,
				typeNamePattern);
	}

	public ResultSet4 getTablePrivileges(String catalog,
			String schemaPattern, String tableNamePattern) {
		return (ResultSet4) super.getTablePrivileges(catalog,
				schemaPattern, tableNamePattern);
	}

	public ResultSet4 getTables(String catalog, String schemaPattern,
			String tableNamePattern, String[] types) {
		return (ResultSet4) super.getTables(catalog, schemaPattern,
				tableNamePattern, types);
	}

	public ResultSet4 getTableTypes() {
		return (ResultSet4) super.getTableTypes();
	}

	public ResultSet4 getVersionColumns(String catalog, String schema,
			String table) {
		return (ResultSet4) super.getVersionColumns(catalog, schema,
				table);
	}

	public ResultSet4 getTypeInfo() {
		return (ResultSet4) super.getTypeInfo();
	}

	public ResultSet4 getUDTs(String catalog, String schemaPattern,
			String typeNamePattern, int[] types) {
		return (ResultSet4) super.getUDTs(catalog, schemaPattern,
				typeNamePattern, types);
	}

	public abstract RowIdLifetime getRowIdLifetime();

}
